inspector: Use search bar API to capture key events from the toplevel
authorCarlos Garnacho <carlosg@gnome.org>
Sun, 11 Mar 2018 12:54:54 +0000 (13:54 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Thu, 5 Apr 2018 17:26:54 +0000 (19:26 +0200)
gtk/inspector/object-tree.c
gtk/inspector/resource-list.c
gtk/inspector/statistics.c

index efb33de6eab2f12b9468924798cfbaf796cce30e..0c04f8ba96b93aa000cfb30225681979da2fbe3b 100644 (file)
@@ -784,18 +784,16 @@ key_pressed (GtkEventController     *controller,
 
           return GDK_EVENT_STOP;
         }
-
-      return gtk_search_bar_handle_event (GTK_SEARCH_BAR (wt->priv->search_bar),
-                                          gtk_get_current_event ());
     }
-  else
-    return GDK_EVENT_PROPAGATE;
+
+  return GDK_EVENT_PROPAGATE;
 }
 
 static void
 on_hierarchy_changed (GtkWidget *widget,
                       GtkWidget *previous_toplevel)
 {
+  GtkInspectorObjectTree *wt = GTK_INSPECTOR_OBJECT_TREE (widget);
   GtkEventController *controller;
   GtkWidget *toplevel;
 
@@ -806,6 +804,9 @@ on_hierarchy_changed (GtkWidget *widget,
   controller = gtk_event_controller_key_new (toplevel);
   g_object_set_data_full (G_OBJECT (toplevel), "controller", controller, g_object_unref);
   g_signal_connect (controller, "key-pressed", G_CALLBACK (key_pressed), widget);
+
+  gtk_search_bar_set_key_capture_widget (GTK_SEARCH_BAR (wt->priv->search_bar),
+                                         toplevel);
 }
 
 static void
index c7aec3241e3f63726d91aabed7dcfc111fe2cee5..141231f01f22816af203ae7b1fa7b48a7e1d1173 100644 (file)
@@ -464,18 +464,16 @@ key_pressed (GtkEventController       *controller,
 
           return GDK_EVENT_STOP;
         }
-
-      return gtk_search_bar_handle_event (GTK_SEARCH_BAR (sl->priv->search_bar),
-                                          gtk_get_current_event ());
     }
-  else
-    return GDK_EVENT_PROPAGATE;
+
+  return GDK_EVENT_PROPAGATE;
 }
 
 static void
 on_hierarchy_changed (GtkWidget *widget,
                       GtkWidget *previous_toplevel)
 {
+  GtkInspectorResourceList *sl = GTK_INSPECTOR_RESOURCE_LIST (widget);
   GtkEventController *controller;
   GtkWidget *toplevel;
 
@@ -486,6 +484,9 @@ on_hierarchy_changed (GtkWidget *widget,
   controller = gtk_event_controller_key_new (toplevel);
   g_object_set_data_full (G_OBJECT (toplevel), "controller", controller, g_object_unref);
   g_signal_connect (controller, "key-pressed", G_CALLBACK (key_pressed), widget);
+
+  gtk_search_bar_set_key_capture_widget (GTK_SEARCH_BAR (sl->priv->search_bar),
+                                         toplevel);
 }
 
 static void
index 47fc45ccfb58e027a7e19a2572eccd81bf5af2b0..a6c8482652c5a6b0f4a7c8d17183e63659d12ce6 100644 (file)
@@ -278,15 +278,10 @@ key_pressed (GtkEventController     *controller,
 
               return GDK_EVENT_STOP;
             }
-          else
-            return GDK_EVENT_PROPAGATE;
         }
-
-      return gtk_search_bar_handle_event (GTK_SEARCH_BAR (sl->priv->search_bar),
-                                          gtk_get_current_event ());
     }
-  else
-    return GDK_EVENT_PROPAGATE;
+
+  return GDK_EVENT_PROPAGATE;
 }
 
 static gboolean
@@ -329,6 +324,7 @@ static void
 hierarchy_changed (GtkWidget *widget,
                    GtkWidget *previous_toplevel)
 {
+  GtkInspectorStatistics *sl = GTK_INSPECTOR_STATISTICS (widget);
   GtkEventController *controller;
   GtkWidget *toplevel;
 
@@ -339,6 +335,9 @@ hierarchy_changed (GtkWidget *widget,
   controller = gtk_event_controller_key_new (toplevel);
   g_object_set_data_full (G_OBJECT (toplevel), "controller", controller, g_object_unref);
   g_signal_connect (controller, "key-pressed", G_CALLBACK (key_pressed), widget);
+
+  gtk_search_bar_set_key_capture_widget (GTK_SEARCH_BAR (sl->priv->search_bar),
+                                         toplevel);
 }
 
 static void